/**
 * @Author: linzp
 * @Date: 2021/08/19/9:45
 *
 */
    //懒汉式单例类.在第一次调用的时候实例化自己
public class Singleton_1 {

    // 让构造函数为 private，这样该类就不会被实例化  为什么单例模式可以限制产生对象的个数？
        private Singleton_1() {}
    //类中的static变量会保证全局唯一，多个实例共享一个static变量，如果该static变量已经初始化过了，不会再次初始化！
        private static Singleton_1 single=null;
        //静态工厂方法
        public static Singleton_1 getInstance() {
            if (single == null) {
                single = new Singleton_1();
            }
            return single;
        }

}

//饿汉式 需要才加载 每次都返回一个常量 instance
 class Singleton_2 {
    private Singleton_2(){};
     private static final Singleton_2 single=new Singleton_2(); // 常量建议加上final  虽然不变的变量也可以表示常量 但这样不然容易产生误解
     public  static Singleton_2 getInstance() {
         return single;
     }
}


